#pragma once
#include <set>
#include <vector>
#include <string>
#include <macro.hxx>
#include <algorithm>
using namespace std;

class Keyword
{
public:
	// Constructors and Destructores
	Keyword(const string& desc);

	static bool Is3Tong(const string& result);
	static bool IsValuable(const string& result);
	bool IsResultQualified(const string& result) const;
	bool Is3TongTargeted(void) const;
	const string& GetSpec(void) const;
	const std::set<std::string> GetExtSpecs(void) const;

	PROPERTY(Desc, std::string);

private:
	static const int KeywordLength = 5;

	std::string spec;

	bool Parse(void);
};